\documentclass[a4paper, 12pt]{article}
\usepackage[UTF8]{ctex}
\usepackage{color}
\usepackage{graphicx}
\setlength{\parindent}{0pt}

\begin{document}
  \title{git实验报告}
  \author{郑淑辉}
  \date{\today}
  \maketitle

  \pagenumbering{roman}
  \tableofcontents
  \newpage
  \pagenumbering{arabic}

  \section{题目1}
  克隆本课程网站仓库————git clone https://github.com/missing-semester-cn/missing-semester-cn.github.io.git\\
  将版本历史可视化并进行探索————git log --all --graph --decorate\\
  查看是谁最后修改了 README.md 文件————git log -1 README.md\\
  查看某文件最后修改信息————git blame  git show
  \begin{figure}[ht]
    \centering
    \includegraphics[width=1\textwidth]{111}
    \includegraphics[width=1\textwidth]{222}
    \caption{题目1}
  \end{figure}

  \section{提交修改及查看历史修改}
  提交文件到本地仓库————git commit -m "提交信息"(将暂存区文件提交到本地仓库)\\
  查看提交历史————git log(查看提交历史，包括提交信息、提交时间、提交者、提交ID)\\
  \begin{figure}[ht]
    \centering
    \includegraphics[width=1\textwidth]{4}
    \caption{提交及查看}
  \end{figure}

  \section{Squash合并}
  Squash合并————git merge <branch> --squash\\ 
  合并前的提交信息会被合并到最后一个提交信息中
  \begin{figure}[ht]
    \centering
    \includegraphics[width=1\textwidth]{11}
    \caption{Squash合并}
  \end{figure}

  \section{追踪文件}
  命令可以查看当前仓库文件的状态————git status(是否纳入版本追踪(暂存区))\\
  添加文件到暂存区————git add 文件名(将文件从工作区添加到暂存区)
  \begin{figure}[ht]
    \centering
    \includegraphics[width=1\textwidth]{3}
    \caption{查看和追踪}
  \end{figure}

  \section{创建切换分支}
  创建分支————git branch\\
  切换分支————git switch\\
  创建分支并切换到这个新分支————git switch -c 分支名
  \begin{figure}[ht]
    \centering
    \includegraphics[width=1\textwidth]{5}
    \caption{创建切换分支}
  \end{figure}

  \section{仓库操作基础}
  创建仓库————git init(创建出的仓库在当前目录下，库名为.git且处于隐藏状态，需使用ls -a命令查看)\\
  克隆仓库————git clone https://github.com/...(仓库内容在当前目录与库名相同)
  \begin{figure}[ht]
    \centering
    \includegraphics[width=0.8\textwidth]{2}
    \caption{创建仓库和克隆仓库}
  \end{figure}

  \section{合并删除分支}
  合并分支————git merge\\
  合并指定分支到当前分支————git merge 分支名\\
  删除分支————git branch -d 分支名
  \begin{figure}[ht]
    \centering
    \includegraphics[width=1\textwidth]{7}
    \includegraphics[width=1\textwidth]{9}
    \caption{合并删除分支}
  \end{figure}

  \section{验证分支提交的文件在master分支上没有联系}
  在分支上使用vim编辑并提交文件,然后切换到master分支,查看文件是否存在，并提交到本地仓库
  \begin{figure}[ht]
    \centering
    \includegraphics[width=1\textwidth]{6}
    \caption{验证分支作用}
  \end{figure}

  \section{可视化历史记录}
  查看可视化历史记录————git log --graph --oneline --all\\
  历史记录有向无环图————git log --all --graph --decorate
  \begin{figure}[ht]
    \centering
    \includegraphics[width=1\textwidth]{8}
    \caption{合并分支}
  \end{figure}
  \paragraph{\\\\}

  \section{设置用户名和邮箱}
  设置用户名————git config --global user.name "自己的用户名"\\
  设置邮箱————git config --global user.email 自己的@邮箱
  \begin{figure}[ht]
    \centering
    \includegraphics[width=1\textwidth]{1}
    \caption{设置用户名和邮箱}
  \end{figure}

  \section{查看远程仓库信息}
  查看当前远程仓库列表————git remote\\
  查看远程仓库详细信息————git remote show origin
  \begin{figure}[ht]
    \centering
    \includegraphics[width=1\textwidth]{12}
    \caption{查看远程仓库信息}
  \end{figure}

  \section{远程仓库操作}
  关联远程仓库————git remote add origin https://github.com/...\\
  拉取远程仓库内容————git pull origin master\\
  推送本地仓库内容到远程仓库————git push origin master\\

\end{document}